Methods and apparatus for transform selection in video encoding and decoding

ABSTRACT

There are provided methods and apparatus for transform selection in video coding. An apparatus includes a video encoder (300) for encoding at least a block in a picture by selecting a transform (329) to apply to a residue of the block from a set of two or more available transforms (325, 326, 327). The transform is selected based on at least one of an inter prediction mode used to predict at least one reference for the block, one or more values corresponding to a motion vector, a value of a residue of one or more previously encoded blocks, a value of prediction data for the block, one or more transform selections of one or more neighboring reconstructed blocks, and a quantization step applied to transform coefficients for the residue of the block.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. Non-Provisionalpatent application Ser. No. 13/138,287, filed Jul. 27, 2011 which is anational stage entry of PCT/US09/005730 filed Oct. 21, 2009 which itselfclaims the benefit of U.S. Provisional Application Ser. No. 61/147,705,filed 27 Jan. 2009, which is incorporated by reference herein in itsentirety, and also claims the benefit of U.S. Provisional ApplicationSer. No. 61/207,783, filed 17 Feb. 2009, which is incorporated byreference herein in its entirety. Furthermore, this application is alsoclosely related to two other applications, both concurrently filed withthe instant application and having common inventors and a commonassignee (Attorney docket Nos. PU090137 and PU090138), each of which areincorporated by reference in their entireties, and each of which claimthe benefit of U.S. Provisional Application Ser. No. 61/147,705, filed27 Jan. 2009 and U.S. Provisional Application Ser. No. 61/207,783, filed17 Feb. 2009.

TECHNICAL FIELD

The present principles relate generally to video encoding and decodingand, more particularly, to methods and apparatus for the selection oftransforms to be used for video encoding and decoding.

BACKGROUND

The block-based discrete transform is a fundamental component of manyimage and video compression standards and recommendations including theJoint Photographic Experts Group (JPEG) Standard, the InternationalTelecommunication Union, Telecommunication Sector (ITU-T) H.263Recommendation (hereinafter the “H.263 Recommendation”), theInternational Organization for Standardization/InternationalElectrotechnical Commission (ISO/IEC) Moving Picture Experts Group-1(MPEG-1) Standard, the MPEG-2 Standard, the ISO/IEC MPEG-4 Part 10Advanced Video Coding (AVC) Standard/ITU-T H.264 Recommendation(hereinafter the “MPEG-4 AVC Standard”), and others, and it is used in awide range of applications.

The discrete cosine transform (DCT) is the most extensively used blocktransform. The DCT scheme takes advantage of the local spatialcorrelation property of the image/frame by dividing the image/frame intoblocks of pixels (usually 4×4 and 8×8), transforming each block from thespatial domain to the frequency domain using the discrete cosinetransform, and quantizing the DCT coefficients. Most image and videocompression standards use a fixed two-dimensional (2-D) separable DCTblock transform. If several block sizes are allowed (typically, from 4×4to 16×16 blocks), then they use a DCT having a size corresponding to theblock. Nonetheless, there is only one possible transform for each blocksize.

However, the image and video content has data with varying statisticsand properties. Thus, the availability of, and hence forced use of, asingle transform per block size fails to realize any potentialcompression gains that could be available using a different transformthan the single transform available per block size.

In the image and video coding standards such as, for example, the MPEG-4AVC Standard, there is only one choice for the block transform to usefor each block size. There is no selection of the transform.

Turning to FIG. 1, a video encoder capable of performing video encodingin accordance with the MPEG-4 AVC Standard is indicated generally by thereference numeral 100. The video encoder 100 includes a frame orderingbuffer 110 having an output in signal communication with a non-invertinginput of a combiner 185. An output of the combiner 185 is connected insignal communication with a first input of a transformer and quantizer125. An output of the transformer and quantizer 125 is connected insignal communication with a first input of an entropy coder 145 and afirst input of an inverse transformer and inverse quantizer 150. Anoutput of the entropy coder 145 is connected in signal communicationwith a first non-inverting input of a combiner 190. An output of thecombiner 190 is connected in signal communication with a first input ofan output buffer 135.

A first output of an encoder controller 105 is connected in signalcommunication with a second input of the frame ordering buffer 110, asecond input of the inverse transformer and inverse quantizer 150, aninput of a picture-type decision module 115, a first input of amacroblock-type (MB-type) decision module 120, a second input of anintra prediction module 160, a second input of a deblocking filter 165,a first input of a motion compensator 170, a first input of a motionestimator 175, and a second input of a reference picture buffer 180.

A second output of the encoder controller 105 is connected in signalcommunication with a first input of a Supplemental EnhancementInformation (SEI) inserter 130, a second input of the transformer andquantizer 125, a second input of the entropy coder 145, a second inputof the output buffer 135, and an input of the Sequence Parameter Set(SPS) and Picture Parameter Set (PPS) inserter 140.

An output of the SEI inserter 130 is connected in signal communicationwith a second non-inverting input of the combiner 190.

A first output of the picture-type decision module 115 is connected insignal communication with a third input of the frame ordering buffer110. A second output of the picture-type decision module 115 isconnected in signal communication with a second input of amacroblock-type decision module 120.

An output of the Sequence Parameter Set (SPS) and Picture Parameter Set(PPS) inserter 140 is connected in signal communication with a thirdnon-inverting input of the combiner 190.

An output of the inverse quantizer and inverse transformer 150 isconnected in signal communication with a first non-inverting input of acombiner 119. An output of the combiner 119 is connected in signalcommunication with a first input of the intra prediction module 160 anda first input of the deblocking filter 165. An output of the deblockingfilter 165 is connected in signal communication with a first input of areference picture buffer 180. An output of the reference picture buffer180 is connected in signal communication with a second input of themotion estimator 175 and a third input of the motion compensator 170. Afirst output of the motion estimator 175 is connected in signalcommunication with a second input of the motion compensator 170. Asecond output of the motion estimator 175 is connected in signalcommunication with a third input of the entropy coder 145.

An output of the motion compensator 170 is connected in signalcommunication with a first input of a switch 197. An output of the intraprediction module 160 is connected in signal communication with a secondinput of the switch 197. An output of the macroblock-type decisionmodule 120 is connected in signal communication with a third input ofthe switch 197. The third input of the switch 197 determines whether ornot the “data” input of the switch (as compared to the control input,i.e., the third input) is to be provided by the motion compensator 170or the intra prediction module 160. The output of the switch 197 isconnected in signal communication with a second non-inverting input ofthe combiner 119 and an inverting input of the combiner 185.

A first input of the frame ordering buffer 110 and an input of theencoder controller 105 are available as inputs of the encoder 100, forreceiving an input picture. Moreover, a second input of the SupplementalEnhancement Information (SEI) inserter 130 is available as an input ofthe encoder 100, for receiving metadata. An output of the output buffer135 is available as an output of the encoder 100, for outputting abitstream.

Turning to FIG. 2, a video decoder capable of performing video decodingin accordance with the MPEG-4 AVC Standard is indicated generally by thereference numeral 200. The video decoder 200 includes an input buffer210 having an output connected in signal communication with a firstinput of the entropy decoder 245. A first output of the entropy decoder245 is connected in signal communication with a first input of aninverse transformer and inverse quantizer 250. An output of the inversetransformer and inverse quantizer 250 is connected in signalcommunication with a second non-inverting input of a combiner 225. Anoutput of the combiner 225 is connected in signal communication with asecond input of a deblocking filter 265 and a first input of an intraprediction module 260. A second output of the deblocking filter 265 isconnected in signal communication with a first input of a referencepicture buffer 280. An output of the reference picture buffer 280 isconnected in signal communication with a second input of a motioncompensator 270.

A second output of the entropy decoder 245 is connected in signalcommunication with a third input of the motion compensator 270 and afirst input of the deblocking filter 265. A third output of the entropydecoder 245 is connected in signal communication with an input of adecoder controller 205. A first output of the decoder controller 205 isconnected in signal communication with a second input of the entropydecoder 245. A second output of the decoder controller 205 is connectedin signal communication with a second input of the inverse transformerand inverse quantizer 250. A third output of the decoder controller 205is connected in signal communication with a third input of thedeblocking filter 265. A fourth output of the decoder controller 205 isconnected in signal communication with a second input of the intraprediction module 260, a first input of the motion compensator 270, anda second input of the reference picture buffer 280.

An output of the motion compensator 270 is connected in signalcommunication with a first input of a switch 297. An output of the intraprediction module 260 is connected in signal communication with a secondinput of the switch 297. An output of the switch 297 is connected insignal communication with a first non-inverting input of the combiner225.

An input of the input buffer 210 is available as an input of the decoder200, for receiving an input bitstream. A first output of the deblockingfilter 265 is available as an output of the decoder 200, for outputtingan output picture.

There have been some prior proposals for the use of multiple transformsin a single coding scheme. In a first prior art approach, an optimallinear transform is disclosed, which is referred to as the KarhunenLoeve Transform (KLT). KLT is employed to derive the best transform foreach of the 9 intra prediction modes in the MPEG-4 AVC Standard. Thestatistics for each mode are extracted and the corresponding KLTs arederived. Each intra prediction residual is encoded with its KLT. The 9intra modes partition the data space effectively, in such a way that theDCT is no longer close to the best transform, so a distinctive besttransform can be derived and successfully applied. In sum, the proposaluses several transforms, but each of them is fixed to the intraprediction mode selected.

A second prior art approach proposes to modify the DCT transform toseveral frequencies, that is, changing the basis functions withdifferent all-pass filters to attain a variety of warped frequencyresponses. The resulting transforms are called warped DCT (WDCT). Anexhaustive rate distortion (R-D) search is performed for each block andthe selected transform is indicated with side information. The idea isapplied to image compression.

A third prior art approach describes using the WDCT and embedding thetransform selection within the transformed coefficients themselves. Themethod shows good performance for low-bit rate image compression. Also,the method adds a post-filtering step that minimizes the mean squareerror (MSE). The filter is determined at the encoder and multiplexedinto the bit-stream.

A fourth prior art approach proposes an algebraic optimization of a setof transforms for a large database. The set is partitioned iterativelyuntil it reaches a stable point in which each transform issparse-optimal for its particular subset of data. The coder indicatesthrough a quad-tree which transform is used in each block. Thus, thetransform choice is not done independently for each block.

A fifth prior art approach proposes an integer sine transform (IST) forinter frame mode. An inter frame residue has a low correlation, and theDCT is adequate only for highly correlated data. Therefore, it proposesa sine transform, which is efficient for data with a correlation from−0.5 to 0.5. The KLT coincides with the sine transform in part of thisrange. The IST is derived from the sine transform in exactly the sameway as the integer cosine transform in the MPEG-4 AVC Standard. Thefifth prior art approach has implemented the 4×4 and 8×8 IST versions.The same transform is applied for the whole macroblock, sending a flag,unless the macroblock is divided into 4 sub-macroblocks, then 4 flagsare sent specifying the transform employed in each sub-macroblock.

A sixth prior art approach proposes a scheme similar to that proposed inthe fifth prior art approach. The sixth prior art approach proposes anadaptive prediction error coding (APEC) scheme that enables adaptiveprediction error coding in the spatial and frequency domain. For eachblock of the prediction error, either transform coding or spatial domaincoding is applied. The algorithm with a lower rate-distortion cost ischosen.

The preceding approaches propose a limited range of choice of the besttransform and do not fully exploit the available possibilities.

SUMMARY

These and other drawbacks and disadvantages of the prior art areaddressed by the present principles, which are directed to methods andapparatus for transform selection in video coding.

According to an aspect of the present principles, there is provided anapparatus. The apparatus includes a video encoder for encoding at leasta block in a picture by selecting a transform to apply to a residue ofthe block from a set of two or more available transforms. The transformis selected based on at least one of an inter prediction mode used topredict at least one reference for the block, one or more valuescorresponding to a motion vector, a value of a residue of one or morepreviously encoded blocks, a value of prediction data for the block, oneor more transform selections of one or more neighboring reconstructedblocks, and a quantization step applied to transform coefficients forthe residue of the block.

According to another aspect of the present principles, there is providedan apparatus. The apparatus includes a video encoder for encoding atleast a block in a picture by selecting a transform to apply to aresidue of the block from a set of two or more available transforms. Thevideo encoder sends information describing the selected transform by atleast one of sending the information explicitly using one or more flags,sending the information using a tree structure in a bitstream, embeddingthe information within transform coefficients corresponding to theselected transform, and allowing a corresponding decoder to infer theselected transform from already decoded data.

According to yet another aspect of the present principles, there isprovided an apparatus. The apparatus includes a video encoder forencoding at least a block in a picture in a video sequence by selectinga transform to apply to a residue of the block from a set of two or moreavailable transforms. The set of transforms is at least one ofdetermined and refined using reconstructed data from one or moreprevious pictures in the video sequence.

According to still another aspect of the present principles, there isprovided an apparatus. The apparatus includes a video encoder forencoding at least a block in a picture by selecting a transform to applyto a residue of the block from a set of two or more availabletransforms. The set of transforms is determined from data to be encodedfor the block.

According to a further aspect of the present principles, there isprovided a method in a video encoder. The method includes encoding atleast a block in a picture by selecting a transform to apply to aresidue of the block from a set of two or more available transforms. Thetransform is selected based on at least one of an inter prediction modeused to predict at least one reference for the block, one or more valuescorresponding to a motion vector, a value of a residue of one or morepreviously encoded blocks, a value of prediction data for the block, oneor more transform selections of one or more neighboring reconstructedblocks, and a quantization step applied to transform coefficients forthe residue of the block.

According to a still further aspect of the present principles, there isprovided a method in a video encoder. The method includes encoding atleast a block in a picture by selecting a transform to apply to aresidue of the block from a set of two or more available transforms; andsending information describing the selected transform by at least one ofsending the information explicitly using one or more flags, sending theinformation using a tree structure in a bitstream, embedding theinformation within transform coefficients corresponding to the selectedtransform, and allowing a corresponding decoder to infer the selectedtransform from already decoded data.

According to a yet further aspect of the present principles, there isprovided a method in a video encoder. The method includes encoding atleast a block in a picture in a video sequence by selecting a transformto apply to a residue of the block from a set of two or more availabletransforms. The set of transforms is at least one of determined andrefined using reconstructed data from one or more previous pictures inthe video sequence.

According to an additional aspect of the present principles, there isprovided a method in a video encoder. The method includes determining aset of one or more transforms; and encoding at least a block in apicture by selecting a transform to apply to a residue of the block fromthe set of transforms. The set of transforms is determined from data tobe encoded for the block.

These and other aspects, features and advantages of the presentprinciples will become apparent from the following detailed descriptionof exemplary embodiments, which is to be read in connection with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The present principles may be better understood in accordance with thefollowing exemplary figures, in which:

FIG. 1 is a block diagram showing a video encoder capable of performingvideo encoding in accordance with the MPEG-4 AVC Standard;

FIG. 2 is a block diagram showing a video decoder capable of performingvideo decoding in accordance with the MPEG-4 AVC Standard;

FIG. 3 is a block diagram showing an exemplary video encoder withtransform selection to which the present principles may be applied, inaccordance with an embodiment of the present principles;

FIG. 4 is a block diagram showing an exemplary video decoder withtransform selection to which the present principles may be applied, inaccordance with an embodiment of the present principles;

FIG. 5 is a flow diagram showing an exemplary method for transformselection in a video encoder, in accordance with an embodiment of thepresent principles;

FIG. 6 is a flow diagram showing an exemplary method for transformselection in a video decoder, in accordance with an embodiment of thepresent principles;

FIG. 7 is a flow diagram showing an exemplary method for transformselection and conveyance in a video encoder, in accordance with anembodiment of the present principles;

FIG. 8 is a flow diagram showing an exemplary method for transformconveyance and selection in a video decoder, in accordance with anembodiment of the present principles;

FIG. 9 is a flow diagram showing another exemplary method for transformselection and conveyance in a video encoder, in accordance with anembodiment of the present principles; and

FIG. 10 is a flow diagram showing another exemplary method for transformconveyance and selection in a video decoder, in accordance with anembodiment of the present principles.

DETAILED DESCRIPTION

The present principles are directed to methods and apparatus fortransform selection in video coding.

The present description illustrates the present principles. It will thusbe appreciated that those skilled in the art will be able to devisevarious arrangements that, although not explicitly described or shownherein, embody the present principles and are included within its spiritand scope.

All examples and conditional language recited herein are intended forpedagogical purposes to aid the reader in understanding the presentprinciples and the concepts contributed by the inventor(s) to furtheringthe art, and are to be construed as being without limitation to suchspecifically recited examples and conditions.

Moreover, all statements herein reciting principles, aspects, andembodiments of the present principles, as well as specific examplesthereof, are intended to encompass both structural and functionalequivalents thereof. Additionally, it is intended that such equivalentsinclude both currently known equivalents as well as equivalentsdeveloped in the future, i.e., any elements developed that perform thesame function, regardless of structure.

Thus, for example, it will be appreciated by those skilled in the artthat the block diagrams presented herein represent conceptual views ofillustrative circuitry embodying the present principles. Similarly, itwill be appreciated that any flow charts, flow diagrams, statetransition diagrams, pseudocode, and the like represent variousprocesses which may be substantially represented in computer readablemedia and so executed by a computer or processor, whether or not suchcomputer or processor is explicitly shown.

The functions of the various elements shown in the figures may beprovided through the use of dedicated hardware as well as hardwarecapable of executing software in association with appropriate software.When provided by a processor, the functions may be provided by a singlededicated processor, by a single shared processor, or by a plurality ofindividual processors, some of which may be shared. Moreover, explicituse of the term “processor” or “controller” should not be construed torefer exclusively to hardware capable of executing software, and mayimplicitly include, without limitation, digital signal processor (“DSP”)hardware, read-only memory (“ROM”) for storing software, random accessmemory (“RAM”), and non-volatile storage.

Other hardware, conventional and/or custom, may also be included.Similarly, any switches shown in the figures are conceptual only. Theirfunction may be carried out through the operation of program logic,through dedicated logic, through the interaction of program control anddedicated logic, or even manually, the particular technique beingselectable by the implementer as more specifically understood from thecontext.

In the claims hereof, any element expressed as a means for performing aspecified function is intended to encompass any way of performing thatfunction including, for example, a) a combination of circuit elementsthat performs that function or b) software in any form, including,therefore, firmware, microcode or the like, combined with appropriatecircuitry for executing that software to perform the function. Thepresent principles as defined by such claims reside in the fact that thefunctionalities provided by the various recited means are combined andbrought together in the manner which the claims call for. It is thusregarded that any means that can provide those functionalities areequivalent to those shown herein.

Reference in the specification to “one embodiment” or “an embodiment” ofthe present principles, as well as other variations thereof, means thata particular feature, structure, characteristic, and so forth describedin connection with the embodiment is included in at least one embodimentof the present principles. Thus, the appearances of the phrase “in oneembodiment” or “in an embodiment”, as well any other variations,appearing in various places throughout the specification are notnecessarily all referring to the same embodiment. Moreover, it is to benoted that the phrases “embodiment” and “implementation” are usedinterchangeably herein.

Moreover, as used herein, the words “picture” and “image” are usedinterchangeably and refer to a still image or a picture from a videosequence. As is known, a picture may be a frame or a field.

Further, as used herein, the word “block” refers to a block of any blocksize, including a super macroblock, a macroblock, a macroblockpartition, and a sub-macroblock partition.

Also, as used herein, the word “refinement” with respect to a set oftransforms or a transform refers to information required to derive atransform/set of transforms from a reference transforms/set oftransforms. Usually, it is more efficient to send the information of the“difference” (refinement) of a transform/set of transforms than to sendall the information required to derive the transform/set of transformsfrom scratch.

Additionally, as used herein, the phrase “side information” refers toadditional information that has to be included in the bitstream toconvey to the decoder additional data that is not found in the usualbitstream. For instance, if two transforms may be used to encode ablock, the selected transform has to be signaled so the decoder knowswhat inverse transform to use. Therefore, the encoder could include 1bit of ‘side information’ indicating what inverse transform is to beused.

It is to be appreciated that the use of any of the following “/”,“and/or”, and “at least one of”, for example, in the cases of “A/B”, “Aand/or B” and “at least one of A and B”, is intended to encompass theselection of the first listed option (A) only, or the selection of thesecond listed option (B) only, or the selection of both options (A andB). As a further example, in the cases of “A, B, and/or C” and “at leastone of A, B, and C”, such phrasing is intended to encompass theselection of the first listed option (A) only, or the selection of thesecond listed option (B) only, or the selection of the third listedoption (C) only, or the selection of the first and the second listedoptions (A and B) only, or the selection of the first and third listedoptions (A and C) only, or the selection of the second and third listedoptions (B and C) only, or the selection of all three options (A and Band C). This may be extended, as readily apparent by one of ordinaryskill in this and related arts, for as many items listed.

Moreover, it is to be appreciated that while one or more embodiments ofthe present principles are described herein as advancements over (andwith reference to) the MPEG-4 AVC standard, the present principles arenot so limited and, thus, may be utilized with respect to other videocoding standards, recommendations, and extensions thereof, includingextensions of the MPEG-4 AVC standard, while maintaining the spirit ofthe present principles.

As noted above, the present principles are directed to methods andapparatus for transform selection in video coding. Recognizing thatimage and video content has data with varying statistics and properties,we also recognize that there are potential compression gains to berealized if several transforms could be used for each block, selectingfor each situation the most favorable transform within a range ofoptions. In at least one embodiment, we propose to optimize/design a setof transforms to given statistics or patterns and select from the setthe best transform for each region or block.

Thus, we propose a more general and broader approach that includesalternatives not considered in the prior art. In accordance with thepresent principles, we describe using a set of transforms (two or moretransforms) and then encode an image or video choosing the besttransform of the set for each region, slice, block or macroblock. Theset of transforms may be optimized or designed for a range of statisticsor image/video patterns. The present principles also involve how tochoose the best transform and the proper signaling of the selectedtransform, so that the image/video decoder can recover the choiceinformation efficiently.

There is no need to restrict the video encoder and decoder to have onlyone possible transform. In an embodiment, we propose that the videoencoder can choose from among different transforms for each block,macroblock, or region to achieve the best performance. Then, in anembodiment, we combine the set of transforms in the encoder with a lightsyntax that does not damage the potential gains.

Turning to FIG. 3, an exemplary video encoder with transform selectionis indicated generally by the reference numeral 300. The video encoder300 includes a frame ordering buffer 310 having an output in signalcommunication with a non-inverting input of a combiner 385. An output ofthe combiner 385 is connected in signal communication with an input of atransformer and quantizer 1 325, an input of a transformer and quantizer2 326, and an input of a transformer and quantizer n 327. An output ofthe transformer and quantizer 1 325 is connected in signal communicationwith a first input of a transform selector 329. An output of thetransformer and quantizer 2 326 is connected in signal communicationwith a second input of the transform selector 329. An output of thetransformer and quantizer n 327 is connected in signal communicationwith a third input of the transform selector 329. An output of thetransform selector 329 is connected in signal communication with a firstinput of an entropy coder 345 and a first input of an inversetransformer and inverse quantizer 350. An output of the entropy coder345 is connected in signal communication with a first non-invertinginput of a combiner 390. An output of the combiner 390 is connected insignal communication with a first input of an output buffer 335.

A first output of an encoder controller 305 is connected in signalcommunication with a second input of the frame ordering buffer 310, asecond input of the inverse transformer and inverse quantizer 350, aninput of a picture-type decision module 315, a first input of amacroblock-type (MB-type) decision module 320, a second input of anintra prediction module 360, a second input of a deblocking filter 365,a first input of a motion compensator 370, a first input of a motionestimator 375, and a second input of a reference picture buffer 380.

A second output of the encoder controller 305 is connected in signalcommunication with a first input of a Supplemental EnhancementInformation (SEI) inserter 330, a second input of the entropy coder 345,a second input of the output buffer 335, and an input of the SequenceParameter Set (SPS) and Picture Parameter Set (PPS) inserter 340.

An output of the SEI inserter 330 is connected in signal communicationwith a second non-inverting input of the combiner 390.

A first output of the picture-type decision module 315 is connected insignal communication with a third input of the frame ordering buffer310. A second output of the picture-type decision module 315 isconnected in signal communication with a second input of amacroblock-type decision module 320.

An output of the Sequence Parameter Set (SPS) and Picture Parameter Set(PPS) inserter 340 is connected in signal communication with a thirdnon-inverting input of the combiner 390.

An output of the inverse quantizer and inverse transformer 350 isconnected in signal communication with a first non-inverting input of acombiner 319. An output of the combiner 319 is connected in signalcommunication with a first input of the intra prediction module 360 anda first input of the deblocking filter 365. An output of the deblockingfilter 365 is connected in signal communication with a first input of areference picture buffer 380. An output of the reference picture buffer380 is connected in signal communication with a second input of themotion estimator 375 and a third input of the motion compensator 370. Afirst output of the motion estimator 375 is connected in signalcommunication with a second input of the motion compensator 370. Asecond output of the motion estimator 375 is connected in signalcommunication with a third input of the entropy coder 345.

An output of the motion compensator 370 is connected in signalcommunication with a first input of a switch 397. An output of the intraprediction module 360 is connected in signal communication with a secondinput of the switch 397. An output of the macroblock-type decisionmodule 320 is connected in signal communication with a third input ofthe switch 397. The third input of the switch 397 determines whether ornot the “data” input of the switch (as compared to the control input,i.e., the third input) is to be provided by the motion compensator 370or the intra prediction module 360. The output of the switch 397 isconnected in signal communication with a second non-inverting input ofthe combiner 319 and an inverting input of the combiner 385.

A first input of the frame ordering buffer 310 and an input of theencoder controller 305 are available as inputs of the encoder 300, forreceiving an input picture. Moreover, a second input of the SupplementalEnhancement Information (SEI) inserter 330 is available as an input ofthe encoder 300, for receiving metadata. An output of the output buffer335 is available as an output of the encoder 300, for outputting abitstream.

In an embodiment, the video encoder 300 selects the best transform froma set of n transforms and sends the side information of the selectedtransform. Then, the inverse transform is performed for the selectedtransform (denoted by i). In this embodiment, the transforms are derivedoffline and available at the encoder and decoder. In an embodiment, theentropy coding performed by the entropy coder 345 is changed/modified toaccommodate the additional information of what transform is being used,and also because each transform may require different entropy coding(different scanning order, different contexts, and so forth).

Turning to FIG. 4, an exemplary video decoder with transform selectionis indicated generally by the reference numeral 400. The video decoder400 includes an input buffer 410 having an output connected in signalcommunication with a first input of the entropy decoder 445. A firstoutput of the entropy decoder 445 is connected in signal communicationwith a first input of an inverse transformer and inverse quantizer i450. An output of the inverse transformer and inverse quantizer i 450 isconnected in signal communication with a second non-inverting input of acombiner 425. An output of the combiner 425 is connected in signalcommunication with a second input of a deblocking filter 465 and a firstinput of an intra prediction module 460. A second output of thedeblocking filter 465 is connected in signal communication with a firstinput of a reference picture buffer 480. An output of the referencepicture buffer 480 is connected in signal communication with a secondinput of a motion compensator 470.

A second output of the entropy decoder 445 is connected in signalcommunication with a third input of the motion compensator 470 and afirst input of the deblocking filter 465. A third output of the entropydecoder 445 is connected in signal communication with an input of adecoder controller 405. A first output of the decoder controller 405 isconnected in signal communication with a second input of the entropydecoder 445. A second output of the decoder controller 405 is connectedin signal communication with a second input of the inverse transformerand inverse quantizer i 450. A third output of the decoder controller405 is connected in signal communication with a third input of thedeblocking filter 465. A fourth output of the decoder controller 405 isconnected in signal communication with a second input of the intraprediction module 460, a first input of the motion compensator 470, anda second input of the reference picture buffer 480.

An output of the motion compensator 470 is connected in signalcommunication with a first input of a switch 497. An output of the intraprediction module 460 is connected in signal communication with a secondinput of the switch 497. An output of the switch 497 is connected insignal communication with a first non-inverting input of the combiner425.

An input of the input buffer 410 is available as an input of the decoder400, for receiving an input bitstream. A first output of the deblockingfilter 465 is available as an output of the decoder 400, for outputtingan output picture.

Techniques exist to derive an optimal set of transforms when the data tobe encoded is available or there is an adequate training data set. Forinstance, a training set of several sequences can be available and thesetechniques can provide a set of transforms that partition the data spacesuch that each transform is the best for its part of the data. Then,given a block, the encoder has to determine the type of data the blockbelongs to and use the adequate transform. These techniques to derive aset of transforms can be based on the common KLT, on a sparsityobjective function, and/or techniques as known or readily derived bythose of ordinary skill in this and related arts. Presuming that we havesuch techniques available, we now address how to use the set oftransforms in an efficient way, that is, how to select the besttransform and how to convey information from the encoder to the decoderefficiently.

Determining the Set of Transforms

We now explain how to determine the set of transforms that are used.

In one embodiment, the set of transforms is derived offline employing aset of sequences as a training data. As mentioned, KLT-based,sparsity-based, energy-compaction or other methods can be used to derivethe set of transforms once a good training set is established.

There are methods to derive transforms based on a priori designcriterion (directionality, frequency, etc) on the set of transforms.Also, the fourth prior art approach mentioned above proposes an off-lineoptimization based on training data with an algebraic optimizationprocess. The process is driven by a cost function aiming to obtain asuited set of transforms for the given data. The cost function consistsof two terms consistent with compression purposes. The algorithmattempts to minimize a reconstruction error term, while maximizing aterm related to the sparsity of the transform coefficientsrepresentation. In principle, more sparsity means less bit-rate toconvey the coefficients' information. We also propose an approach thatsolves at least two deficiencies of the above referenced prior artapproach. First, we explicitly provide a weight to balance both terms ofthe cost function. Second and more important, we propose to deriveoptimal vertical and horizontal transforms instead of single 2-Dnon-separable transforms. While our approach couples the jointoptimization of both directions, the advantages are important forpractical applications in that the computational complexity and memoryrequirements for a set of separable transforms are much lower than therequirements for a set of non-separable transforms. At the same time,allowing the transforms in the vertical and horizontal directions to bedifferent permits the capture of the richness of image and video blocksbetter than having a single kernel for both directions.

Note that when we say ‘set of transforms’ each of these transforms maybe non-separable or separable. If they are separable, each direction(vertical/horizontal) may be equal or different.

In another embodiment, a subset of a family of transforms can beselected, so that the subset has good properties in order to encode theinput data. As an example, a subset of the WDCT could be determined forthe video data to encode. Also, a subset of the lapped transforms couldbe determined. Once the subset is fixed, the encoder only needs toconvey the information of what transform within the family subset isused.

In another embodiment, the subset of transforms is selected according tothe quality of the reconstructed video. The quality of the output can bedetermined by the quantization step of the encoder, the quantizationparameter (QP), the goal bit-rate, the PSNR, and/or any parameter ofmetric that indicates the desired output video quality.

In another embodiment, the set of transforms is derived online from thedata already being encoded. Two exemplary implementations of thisembodiment are provided as follows. In one exemplary implementation,reconstructed data of previous frames is used as a training set toderive the set of transforms with any of the available methods. Inanother exemplary implementation, reconstructed data is used to refinethe transform that is being used, so that the transform is updatedonline to match the ongoing data statistics.

In another embodiment, the set of transforms is derived from the data tobe encoded. Such data to be encoded includes, but is not limited to, theoriginal frame or statistics drawn from the next frames to encode.Therefore, the encoder analyzes the sequence or the next part of thesequence to encode and determines with any of the available methods thebest set of transforms to use or selects the best family of transformsto use. In this case, the encoder needs to send as side information theset of transforms that are going to be used. Several exemplaryimplementation of this embodiment are provided as follows. In a firstexemplary implementation, the encoder finds the best set of transformsand sends all the transforms to use. In a second exemplary embodiment,the encoder finds the best set of transforms to use, and the decodertries to deduce the best set from previous decoded data, so that theencoder only needs to send a refinement of the transform deducted by thedecoder (so that there is no error or mismatch between the encoder anddecoder). In a third exemplary implementation, the encoder selects froma variety of sets of transforms (available at both the encoder anddecoder) the best set to use, and signals the particular set to thedecoder. In a fourth implementation, the encoder finds the particularset of transforms from a family of transforms that is best suited forthe data. Then, the encoder conveys to the decoder the particular subsetof the family of transforms that has been selected.

Conveying the Selected Transform

We now describe how to indicate the selected transform to the decoder sothat the encoder and decoder match.

In one embodiment, the encoder can send the selected transform to thedecoder with a flag included in the syntax at the slice, macroblock, orblock level. In one embodiment, at the encoder, the best transform foreach block is determined with a rate-distortion cost function.

In another embodiment, the selected transform can be conveyed with aquad-tree or other types of trees that allow specifying explicitly andflexibly the selected transform for different regions in the frame. Inthis way, the region of a transform can be more arbitrary than thesimple block shape of the previous embodiment.

In another embodiment, the selected transform can be sent by hiding theflag (that indicates which transform is to be used) within thetransforms coefficients themselves. A possible embodiment of thisalternative is explained in the following. Presume that there are onlytwo transforms in the set of transforms. Then, if transform 1 isselected, then the encoder enforces the sum of the transformcoefficients to be even. If transform 2 is selected, then the encoderenforces the sum of the transform coefficients to be odd. At thedecoder, the transform coefficients are recovered and the parity oftheir sum computed. If the parity is even, then the inverse transform toapply is that of transform 1. If the parity is odd, then the inversetransform to apply is that of transform 2. In this way, the flag can behidden in the transform coefficients and it is recoverable at thedecoder side so both the encoder and decoder are in synchrony.Obviously, hiding the flag in the coefficients is not limited to havingtwo transforms. Such technique can be straightforward extended to anynumber of transforms.

In another embodiment, the explicit information of the selectedtransform is not sent. In this case, it can be deduced from the dataalready decoded. This information has to be available at both theencoder and decoder and the way to extract the selected transform fromthe data has to be the same in both so they are in synchrony. There is avariety of information from which the transform can be selected. In thefollowing, 5 particular embodiments of this implicit signaling areprovided. Of course, the present principles are not limited to thefollowing embodiments relating to implicit signaling and, given theteachings of the present principles provided herein, one of ordinaryskill in this and related arts will contemplate these and otherimplementations, while maintaining the spirit of the present principles.

In a first embodiment, the inter prediction mode employed is used toimplicitly signal the transform(s). In one implementation of thisembodiment, if it is a direct mode, transform 1 is used. Otherwise,transform 2 is used.

In a second embodiment, the motion vector is used to implicitly signalthe transform(s). The transform to be used can depend on the motionvector of the block (its size, direction, reference picture, and soforth).

In a third embodiment, the transform depends on the residue of previousencoded blocks. Then, the statistics of the residue of the previousencoded blocks determines what transform within the set is used.

In a fourth embodiment, the transform choice depends on the predicteddata for the block. There is some correlation between the residue andthe predicted data that can be exploited in the choice of the besttransform. As an example, if the prediction has a directional component,then this directionality is usually also evident in the residue. Then,the use of a directional transform for that given direction gives abetter performance because directional transforms can take advantage ofthe directional component of the residue in a way that non-directionaltransforms can not.

In a fifth embodiment, the transform choice can be dependent on thetransform selections of the neighboring reconstructed blocks, which areavailable at both the encoder and decoder.

The System

The present principles may be considered to involve two parts, namelyhow to select the set of transforms and how to convey the selectedtransform within the set for each particular block. Several alternativesare proposed for each of these two parts. The proposed approaches cancombine any of the proposed alternatives for each of the parts. Also,note that each transform may need its particular quantization process,as well as a different scanning order of the coefficients prior toentropy encoding. Also, each scanning order may be done adaptive to thestatistics of each transform. In one embodiment, the scanning order ofeach transform can be adaptive to the number of times a particularcoefficient position has been previously encoded as significant. Thepresent principles consider the following extensions of the transform:quantization process of the transform; scanning order of the transform;and potential adaptivity of this scanning order.

Turning to FIG. 5, an exemplary method for transform selection in avideo encoder is indicated generally by the reference numeral 500. Themethod 500 includes a start block 505 that passes control to a functionblock 510. The function block 510 receives a video sequence forencoding, commences encoding the video sequence, and passes control to afunction block 515. The function block 515 determines one or more oftraining data, one or more sets of transforms with each set representinga respective family of transforms, data already encoded, and data to beencoded, and passes control to a function block 520. The function block520 selects a transform i depending on one or more of the training data,one or more subsets of transforms with each subset representing arespective portion of a family of transforms, the data already encoded,and the data to be encoded, and passes control to a function block 525.The function block 525 transforms using selected transform i andquantizes block residue data for a block in a picture of the videosequence, and passes control to a function block 530. The function block530 outputs quantized coefficients, and passes control to an end block599.

It is to be appreciated that one or more of the training data and theone or more sets of transforms may be determined on-line (i.e., duringthe encoding of the video sequence) or off-line (e.g., prior to encodingthe video sequence).

Turning to FIG. 6, an exemplary method for transform selection in avideo decoder is indicated generally by the reference numeral 600. Themethod 600 includes a start block 605 that passes control to a functionblock 610. The function block 610 receives a bitstream for decoding,commences decoding the bitstream, and passes control to a function block615. The function block 615 determines one or more of training data, oneor more sets of transforms with each set representing a respectivefamily of transforms, data already decoded, and data to be decoded, andpasses control to a function block 620. The function block 620 selects atransform i depending on one or more of the training data, one or moresubsets of transforms with each subset representing a respective portionof a family of transforms, the data already decoded, and the data to bedecoded, and passes control to a function block 625. The function block625 inverse transforms and inverse quantizes quantized coefficients fora block in a picture of the video sequence using selected transform i,and passes control to a function block 630. The function block 630outputs block residue data, and passes control to an end block 699.

It is to be appreciated that one or more of the training data and theone or more sets of transforms may be determined on-line (i.e., duringthe decoding of the video sequence) or off-line (e.g., prior to decodingthe video sequence).

Turning to FIG. 7, an exemplary method for transform selection andconveyance in a video encoder is indicated generally by the referencenumeral 700. The method 700 includes a start block 705 that passescontrol to a function block 710. The function block 710 receives aninput frame for encoding, and passes control to a function block 715.The function block 715 trains one or more sets of transforms, and passescontrol to a function block 765 and a loop limit block 720. The functionblock 765 outputs the set of transforms to be used in the frame, andpasses control to a function block 770. The loop limit block 720performs a loop over the blocks over the input frame, and passes controlto a function block 725. The function block 725 gets the block residue,and passes control to a loop limit block 730. The loop limit block 730performs a loop over the one or more sets of transforms, and passescontrol to a function block 735. The function block 735 performs a ratedistortion analysis with respect to the transforms in the one or moresets of transforms, and passes control to a loop limit block 740. Theloop limit block 740 ends the loop over the transforms, and passescontrol to a function block 745. The function block 745 determines thebest transform for the current block, and passes control to a loop limitblock 750. The loop limit block 750 ends the loop over the blocks, andpasses control to a function block 755 and a function block 760. Thefunction block 755 outputs quantized coefficients for each of theblocks, and passes control to a function block 770. The function block760 outputs the selected transform for each block, and passes control tothe function block 770. The function block 770 transmits the quantizedcoefficients, the set of transforms to be used in the frame (or arefinement on the set) and the selected transform for each block in theframe, with the set of transforms to be used in the frame (or therefinement on the set) and/or the selected transform for each block inthe frame being transmitted either explicitly or implicitly, and passescontrol to an end block 799. It is to be appreciated that with respectto function block 770, in the case of the set of transforms to be usedin the frame (or the refinement on the set) and/or the selectedtransform for each block in the frame being sent implicitly, informationindicating the set of transforms to be used in the frame (or therefinement on the set) and/or the selected transform for each block inthe frame may be sent in place of the actual transforms. In such a case,the decoder can then derive the transforms from the implicitinformation. Moreover, the set of transforms to be used in the frame (orthe refinement on the set), the selected transform for each block in theframe, and/or information representing at least one of the preceding maybe sent as side information with respect to a bitstream. Further, theset of transforms to be used in the frame (or the refinement on theset), the selected transform for each block in the frame, and/orinformation representing at least one of the preceding may be sent usingone or more flags and/or syntax elements.

Turning to FIG. 8, an exemplary method for transform conveyance andselection in a video decoder is indicated generally by the referencenumeral 800. The method 800 includes a start block 805 that passescontrol to a function block 810, a function block 815, and a functionblock 820. The function block 810 receives, either explicitly orimplicitly, a set of transforms to be used for a current frame to bedecoded or a refinement on the set, and passes control to a functionblock 830. The function block 815 receives quantized coefficients foreach block in the current frame, and passes control to a loop limitblock 825. The function block 820 receives, either explicitly orimplicitly, the selected transform for each block in the current frame,and passes control to the function block 830. The loop limit block 825performs a loop over the blocks in the current frame, and passes controlto the function block 830. The function block 830 determines the inversetransform for a current block, and passes control to a function block835. The function block 835 applies the determined inverse transform forthe block, and passes control to a loop limit block 840. The loop limitblock 840 ends the loop, and passes control to a function block 845. Thefunction block 845 outputs a block residue for each of the blocks, andpasses control to an end block 899.

It is to be appreciated that with respect to function blocks 810 and820, in the case of the set of transforms to be used in the frame (orthe refinement on the set) and/or the selected transform for each blockin the frame being sent implicitly, information indicating the set oftransforms to be used in the frame (or the refinement on the set) and/orthe selected transform for each block in the frame may be received inplace of the actual transforms. In such a case, the decoder can thenderive the transforms from the implicit information (e.g., by functionblock 830). Moreover, the set of transforms to be used in the frame (orthe refinement on the set), the selected transform for each block in theframe, and/or information representing at least one of the preceding maybe received as side information with respect to the bitstream.

Turning to FIG. 9, another exemplary method for transform selection andconveyance in a video encoder is indicated generally by the referencenumeral 900. The method 900 includes a start block 905 that passescontrol to a function block 910. The function block 910 inputs a frameto be encoded, and passes control to a function block 915. The functionblock 915 trains one or more sets of transforms, and passes control to afunction block 970 and a loop limit block 920. The loop limit block 920performs a loop over the blocks in the frame, and passes control to afunction block 925. The function block 925 gets a block residue for acurrent block, and passes control to a loop limit block 930. The looplimit block 930 performs a loop over the one or more sets of transforms,and passes control to a function block 935. The function block 935transforms and quantizes coefficients for the current block, and passescontrol to a function block 940. The function block 940 embeds a flag inthe coefficients, and passes control to a function block 945. Thefunction block 945 performs a rate-distortion (RD) analysis, and passescontrol to a loop limit block 950. The loop limit block 950 ends theloop over the transforms, and passes control to a function block 955.The function block 955 determines the best transform for the currentblock, and passes control to a function block 960. The function 960outputs quantized coefficients for each of the blocks, and passescontrol to a loop limit block 965. The loop limit block ends the loopover the blocks, and passes control to an end block 999.

Turning to FIG. 10, another exemplary method for transform conveyanceand selection in a video decoder is indicated generally by the referencenumeral 1000. The method 1000 includes a start block 1005 that passescontrol to a function block 1010 and a loop limit block 1015. Thefunction block 1010 receives, either explicitly or implicitly, a set oftransforms to be used for a current frame to be decoded, and passescontrol to a function block 1030. The loop limit block 1015 performs aloop over the blocks in the current frame, and passes control to afunction block 1020. The, function block 1020 receives quantizedcoefficients for each of the blocks in the current frame and passescontrol to a function block 1025. The function block 1025 extracts anembedded flag(s) from the coefficients, and passes control to thefunction block 1030. The function block 1030 determines an inversetransform to apply to the current block based on the embedded flag(s),and passes control to a function block 1035. The function block 1035inverse transforms the block using the determined inverse transform, andpasses control to a function block 1040. The function block 1040 outputsa block residue, and passes control to a loop limit block 1045. The looplimit block 1045 ends the loop, and passes control to an end block 1099.

A description will now be given of some of the many attendantadvantages/features of the present invention, some of which have beenmentioned above. For example, one advantage/feature is an apparatushaving a video encoder for encoding at least a block in a picture byselecting a transform to apply to a residue of the block from a set oftwo or more available transforms. The transform is selected based on atleast one of an inter prediction mode used to predict at least onereference for the block, one or more values corresponding to a motionvector, a value of a residue of one or more previously encoded blocks, avalue of prediction data for the block, one or more transform selectionsof one or more neighboring reconstructed blocks, and a quantization stepapplied to transform coefficients for the residue of the block.

Another advantage/feature is the apparatus having the encoder asdescribed above, wherein the set of transforms is determined off-line.

Yet another advantage/feature is the apparatus having the encoderwherein the set of transforms is determined off-line as described above,wherein the set of transforms is determined at least one of usingtraining data and by choosing a subset of a family of transforms.

A further advantage/feature is the apparatus having the encoder asdescribed above, wherein the transforms in the set are any of separableor non-separable, and horizontal and vertical directions of thetransforms are capable of being different when the transforms areseparable.

Still another advantage/feature is an apparatus having a video encoderfor encoding at least a block in a picture by selecting a transform toapply to a residue of the block from a set of two or more availabletransforms. The video encoder sends information describing the selectedtransform by at least one of sending the information explicitly usingone or more flags, sending the information using a tree structure in abitstream, embedding the information within transform coefficientscorresponding to the selected transform, and allowing a correspondingdecoder to infer the selected transform from already decoded data.

Moreover, another advantage/feature is the apparatus having the videoencoder as described above, wherein the set of transforms is determinedat least one of using training data and by choosing a subset of a familyof transforms.

Further, another advantage/feature is an apparatus having a videoencoder for encoding at least a block in a picture in a video sequenceby selecting a transform to apply to a residue of the block from a setof two or more available transforms. The set of transforms is at leastone of determined and refined using reconstructed data from one or moreprevious pictures in the video sequence.

Also, another advantage/feature is an apparatus having a video encoderfor encoding at least a block in a picture by selecting a transform toapply to a residue of the block from a set of two or more availabletransforms. The set of transforms is determined from data to be encodedfor the block.

Additionally, another advantage/feature is the apparatus having thevideo encoder as described above, wherein the video encoder determinesthe set of transforms and sends the set of transforms to a correspondingdecoder as side information.

Moreover, another advantage/feature is the apparatus having the videoencoder as described above, wherein the video encoder determines the setof transforms, determines a refinement on the set of transforms thatallows a corresponding decoder to predict the set of transforms from therefinement and from previously decoded data in order to derive a sameset of transforms as said video encoder, and sends the refinement to thecorresponding decoder.

Further, another advantage/feature is the apparatus having the videoencoder as described above, wherein the video encoder determines the setof transforms from a plurality of sets of transforms and sends the setof transforms as side information.

Also, another advantage/feature is the apparatus having the videoencoder as described above, wherein the video encoder determines the setof transforms from a family of transforms, the set of transformsrepresenting a subset of the family of transforms, and wherein the videoencoder sends only the subset of the family of transforms.

These and other features and advantages of the present principles may bereadily ascertained by one of ordinary skill in the pertinent art basedon the teachings herein. It is to be understood that the teachings ofthe present principles may be implemented in various forms of hardware,software, firmware, special purpose processors, or combinations thereof.

Most preferably, the teachings of the present principles are implementedas a combination of hardware and software. Moreover, the software may beimplemented as an application program tangibly embodied on a programstorage unit. The application program may be uploaded to, and executedby, a machine comprising any suitable architecture. Preferably, themachine is implemented on a computer platform having hardware such asone or more central processing units (“CPU”), a random access memory(“RAM”), and input/output (“I/O”) interfaces. The computer platform mayalso include an operating system and microinstruction code. The variousprocesses and functions described herein may be either part of themicroinstruction code or part of the application program, or anycombination thereof, which may be executed by a CPU. In addition,various other peripheral units may be connected to the computer platformsuch as an additional data storage unit and a printing unit.

It is to be further understood that, because some of the constituentsystem components and methods depicted in the accompanying drawings arepreferably implemented in software, the actual connections between thesystem components or the process function blocks may differ dependingupon the manner in which the present principles are programmed. Giventhe teachings herein, one of ordinary skill in the pertinent art will beable to contemplate these and similar implementations or configurationsof the present principles.

Although the illustrative embodiments have been described herein withreference to the accompanying drawings, it is to be understood that thepresent principles is not limited to those precise embodiments, and thatvarious changes and modifications may be effected therein by one ofordinary skill in the pertinent art without departing from the scope orspirit of the present principles. All such changes and modifications areintended to be included within the scope of the present principles asset forth in the appended claims.

1. An apparatus, comprising: a video encoder (300) for encoding at leasta block in a picture by selecting a transform to apply to a residue ofthe block between contiguous pictures in a video sequence from a set oftwo or more transforms, wherein the transform is selected responsive toan inter prediction mode used to predict at least one reference for theblock.
 2. The apparatus of claim 1, wherein the set of transforms isdetermined off-line.
 3. The apparatus of claim 2, wherein the set oftransforms is determined by at least one of: (i) using training data,and (ii) choosing a subset of a family of transforms.
 4. The apparatusof claim 1, wherein information describing the selected transform isexplicitly signaled only for block sizes greater than a threshold blocksize.
 5. The apparatus of claim 1, wherein a flag describing theselected transform is embedded in coefficients of the transform whenblock sizes are less than a threshold block size.
 6. In a video encoder,a method, comprising: encoding (510) at least a block in a picture byselecting (520) a transform to apply to a residue of the block betweencontiguous pictures in a video sequence from a set of two or moretransforms, wherein the transform is selected responsive to an interprediction mode used to predict at least one reference for the block. 7.The method of claim 6, wherein the set of transforms is determined by atleast one of: (i) using training data (515), and (ii) choosing a subsetof a family of transforms (520).
 8. The method of claim 6, wherein thetransforms in the set are any of separable or non-separable, andhorizontal and vertical directions of the transforms are capable ofbeing different when the transforms are separable.
 9. The method ofclaim 6, wherein information describing the selected transform isexplicitly signaled only for block sizes greater than a threshold blocksize.
 10. The method of claim 6, wherein a flag describing the selectedtransform is embedded in coefficients of the transform when block sizesare less than a threshold block size.
 11. The apparatus of claim 6,wherein information describing the selected transform is explicitlysignaled only for block sizes greater than a threshold block size. 12.The apparatus of claim 6, wherein a flag describing the selectedtransform is embedded in coefficients of the transform when block sizesare less than a threshold block size.
 13. An apparatus, comprising: avideo decoder (400) for decoding at least a block in a picture bydetermining an inverse transform to apply to quantized coefficients ofthe block between contiguous pictures in a video sequence from a set oftwo or more inverse transforms, wherein the inverse transform isdetermined responsive to an inter prediction mode used to predict atleast one reference for the block.
 14. In a video decoder, a method,comprising: decoding (610) at least a block in a picture by determining(615, 620) an inverse transform to apply to quantized coefficients ofthe block between contiguous pictures in a video sequence from a set oftwo or more inverse transforms, wherein the inverse transform isdetermined responsive to an inter prediction mode used to predict atleast one reference for the block.
 15. A storage media having videosignal data encoded thereupon, comprising: data corresponding to atleast one block between contiguous pictures in a video sequence in apicture encoded by selecting a transform to apply to a residue of theblock from a set of two or more transforms, wherein the transform isselected responsive to an inter prediction mode used to predict at leastone reference for the block.